In general, when new software is developed, a copy of a source file that has been formerly developed is utilized. A copied file may be utilized as it is, or a copied file may be utilized in a revised form.
In this way, software utilizes other software, but it itself may also be utilized in the development of other software. That is, software utilizes other software as a derivation origin file, but it also can be utilized as a derivation origin file by other software.
Software may be revised after it has been developed. At this time, if the revised content is one that should be committed to a derivation destination file, the content needs to be surely committed to the derivation destination file. Moreover, if the revised content is one that should be committed in a derivation origin file, the content needs to be surely committed in the derivation origin file. For example, the revised content is a correction of a bug, the revised content needs to be committed to all other derivation files. That is, maintenance management of software is needed.
JP Patent Publication (Kokai) No. 2007-279883 describes a file configuration management apparatus which retains a correspondence relationship between a derivation origin file and a derivation destination file to prevent a failure to commit revisions between files which are in the correspondence relationship.
However, the file configuration management apparatus according to JP Patent Publication (Kokai) No. 2007-279883 performs the configuration management only in the unit of files and is unable to perform the configuration management in the unit of software components that make up a file. Here, a software component represents an arbitrary set of text strings such as functions, procedures, statements, and the like included in a source file.
In recent years, upon development of new software, a plurality of software components are retrieved from a software component database which stores existing software components, and they are combined to automatically create a source file of a new program.
However, in this case, maintenance work of the software component database becomes necessary. For example, when a bug is found in a software component stored in the software component database, it is necessary to revise the bug and replace the software component with a revised one. Moreover, a new software component may be added to the software component database. In particular, when the software components stored in the software component database becomes large in number, the maintenance work thereof will become complicated.
JP Patent Publication (Kokai) No. 2007-102380 describes that a plurality of software components stored in a software component database is managed by use of a macro description. Thereby, replacement with a revised software component can be automated.    [Patent Document 1] JP Patent Publication (Kokai) No. 2007-279883    [Patent Document 2] JP Patent Publication (Kokai) No. 2007-102380